﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SegIdenPC.Entidad;
using log4net;
using GS1.Utilitario;
using SegIdenPC.Herramientas;

namespace SegIdenPC.Formularios
{
    public partial class frmContenidoBulto : Form
    {
        #region --- Variables y Propiedades ---
        private static readonly ILog log = LogManager.GetLogger(typeof(frmContenidoBulto));

        private const string TITULO = "Contenido Bultos";

        private const string FORMATO_PRODUCTO_DESCRIPCION_DETALLADA = "{0} - {1} - {2} - {3}";

        public  Bulto bulto = null;
        #endregion

        #region --- Constructor ---
        public frmContenidoBulto()
        {
            InitializeComponent();
        }
        #endregion

        #region --- Eventos Formulario ---
        private void frmContenidoBulto_Load(object sender, EventArgs e)
        {
            cargarFormulario();
        }


        private void btnCerrar_Click(object sender, EventArgs e)
        {
            salir();
        }
        #endregion

        #region --- Metodos Propios ---
        private void cargarFormulario()
        {
            // Se establece propiedad para evitar que genere nuevas columnas que no estan mapeadas en la grilla
            this.dgvListadoContenidoBulto.AutoGenerateColumns = false;

            this.dgvListadoContenidoBulto.DataSource = this.bulto.listaItem.lista == null ?
                                                    new ListPersonalizada<Item>() :
                                                    this.bulto.listaItem.lista;

            pintarGrilla(this.dgvListadoContenidoBulto);
        }

        private void pintarGrilla(DataGridView grilla)
        {
            ListPersonalizada<Item> listaItem = null;
            listaItem = (ListPersonalizada<Item>)grilla.DataSource;

            if (listaItem != null)
            {
                for (int i = 0; i < listaItem.Count; i++)
                {
                    Item item = listaItem[i];
                    grilla.Rows[i].Cells[2].Value = item.producto.codProductoProveedor;
                    grilla.Rows[i].Cells[3].Value = item.producto.descripcion;
                }
            }
        }

        private void salir()
        {
            this.Close();
        }

        #endregion
    }
}
